home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1995-11-01 | 3.6 KB | 176 lines |
- 10 'OHMSLAW - 1983 - rev. 01 NOV 95
- 20 IF EX$=""THEN EX$="EXIT"
- 30 CLS:KEY OFF
- 40 COLOR 7,0,1
- 50 DIM B$(3),C$(9),V$(25),R$(8)
- 60 O$="#####,###
- 70 U$="####,###.###"
- 80 L$=STRING$(42,205)
- 90 UL$=STRING$(80,205)
- 100 DATA 1st,2nd,3rd
- 110 FOR Z=1 TO 3
- 120 READ B$(Z)
- 130 NEXT Z
- 140 DATA BLACK,BROWN,RED,ORANGE,YELLOW,GREEN,BLUE,VIOLET,GREY,WHITE
- 150 FOR Z=0 TO 9
- 160 READ C$(Z)
- 170 NEXT Z
- 180 DATA 10,11,12,13,15,16,18,20,22,24,27,30,33
- 190 DATA 36,39,43,47,51,56,62,68,75,82,91,100
- 200 FOR Z=1 TO 25
- 210 READ V$(Z)
- 220 NEXT Z
- 230 '
- 240 '.....start
- 250 CLS:E=0:I=0:R=0:P=0
- 260 COLOR 15,2
- 270 PRINT " OHM'S LAW";TAB(57);"by George Murphy VE3ERP ";
- 280 COLOR 1,0:PRINT STRING$(80,223);
- 290 COLOR 7,0
- 300 PRINT " Press number in < > for:"
- 310 PRINT UL$;
- 320 PRINT " < 1 > Ohm's Law"
- 330 PRINT " < 2 > Resistor Colour Codes"
- 340 PRINT UL$;
- 350 PRINT " < 0 > EXIT"
- 360 Z$=INKEY$
- 370 IF Z$="1"THEN 420
- 380 IF Z$="2"THEN CLS:GOTO 1340
- 390 IF Z$="0"THEN CLS:RUN EX$
- 400 GOTO 360
- 410 '
- 420 '.....OHM's LAW
- 430 CLS
- 440 PRINT " ( Press <ENTER> if factor is unknown )
- 450 PRINT L$
- 460 IF E=0 THEN INPUT " ENTER: Volts .....";E:GOSUB 520
- 470 IF I=0 THEN INPUT " ENTER: Amps ......";I:GOSUB 520
- 480 IF R=0 THEN INPUT " ENTER: Ohms ......";R:GOSUB 520
- 490 IF P=0 THEN INPUT " ENTER: Watts .....";P:GOSUB 520
- 500 CLS:GOTO 420
- 510 '
- 520 '.....CHECK IF SUFFICIENT PARAMETERS
- 530 IF E*I THEN R=E/I:P=I*E:GOTO 610
- 540 IF E*R THEN I=E/R:P=E^2/R:GOTO 610
- 550 IF I*R THEN E=I*R:P=I^2*R:GOTO 610
- 560 IF P*E THEN I=P/E:R=E^2/P:GOTO 610
- 570 IF P*I THEN E=P/I:R=P/I^2:GOTO 610
- 580 IF P*R THEN E=SQR(P*R):I=SQR(P/R):GOTO 610
- 590 RETURN
- 600 '
- 610 '.....CALCULATE OTHER FACTORS
- 620 CLS
- 630 EE=E:E$=" volts"
- 640 II=I:I$=" amps"
- 650 RR=R:R$=" ohms"
- 660 PP=P:P$=" watts"
- 670 IF E>=10^3 THEN EE=E/10^3:E$=" KV."
- 680 IF I>=10^4 THEN II=I/10^4:I$=" K.amp."
- 690 IF I<1 THEN II=I*10^3:I$=" mA."
- 700 IF R>=10^4 THEN RR=R/10^4:R$=" K.ohm"
- 710 IF R>=10^6 THEN RR=R/10^6:R$=" Megohm"
- 720 IF P>=10^3 THEN PP=P/10^3:P$=" Kw."
- 730 PRINT L$
- 740 PRINT " E=";USING U$;EE;
- 750 PRINT E$
- 760 PRINT " I=";USING U$;II;
- 770 PRINT I$
- 780 PRINT " R=";USING U$;RR;
- 790 PRINT R$
- 800 PRINT " P=";USING U$;PP;
- 810 PRINT P$
- 820 R$=STR$(INT(R)):N$=LEFT$(R$,3):L=LEN(R$)-3:M=10^L
- 830 Y$=""
- 840 IF R<10 OR R>2.2*1E+06 THEN 1210
- 850 PRINT L$
- 860 PRINT " Nearest standard small resistors:"
- 870 '
- 880 FOR Y=1 TO 25
- 890 IF VAL(V$(Y))>VAL(N$)THEN 920
- 900 NEXT Y
- 910 '
- 920 R$(1)=V$(Y-1):R(1)=VAL(R$(1))*M:R$=STR$(R(1)):N=0
- 930 FOR Z=4 TO LEN (R$)
- 940 IF MID$(R$,Z,1)="0"THEN N=N+1
- 950 NEXT Z
- 960 R$(7)=C$(N)
- 970 '
- 980 R$(2)=V$(Y):R(2)=VAL(R$(2))*M:R$=STR$(R(2)):N=0
- 990 FOR Z=4 TO LEN (R$)
- 1000 IF MID$(R$,Z,1)="0"THEN N=N+1
- 1010 NEXT Z
- 1020 R$(8)=C$(N)
- 1030 '
- 1040 FOR Z=0 TO 9
- 1050 IF VAL(LEFT$(R$(1),1))=Z THEN R$(3)=C$(Z)
- 1060 IF VAL(LEFT$(R$(2),1))=Z THEN R$(4)=C$(Z)
- 1070 IF VAL(RIGHT$(R$(1),1))=Z THEN R$(5)=C$(Z)
- 1080 IF VAL(RIGHT$(R$(2),1))=Z THEN R$(6)=C$(Z)
- 1090 NEXT Z
- 1100 FOR Z=1 TO 2
- 1110 PRINT USING O$;R(Z);
- 1120 PRINT " ohms";
- 1130 PRINT " ( ";
- 1140 PRINT R$(Z+2);
- 1150 PRINT " ";
- 1160 PRINT R$(Z+4);
- 1170 PRINT " ";
- 1180 PRINT R$(Z+6);
- 1190 PRINT " )"
- 1200 NEXT Z
- 1210 Z$=""
- 1220 PRINT L$
- 1230 PRINT " Press E,I,R or P to retain for another "
- 1240 PRINT " calculation or press Z to return to MENU
- 1250 PRINT L$
- 1260 Z$=INKEY$
- 1270 IF Z$="E" OR Z$="e" THEN I=0:R=0:P=0:GOTO 420
- 1280 IF Z$="I" OR Z$="i" THEN E=0:R=0:P=0:GOTO 420
- 1290 IF Z$="R" OR Z$="r" THEN E=0:I=0:P=0:GOTO 420
- 1300 IF Z$="P" OR Z$="p" THEN E=0:I=0:R=0:GOTO 420
- 1310 IF Z$="Z" OR Z$="z" THEN 240 'start
- 1320 GOTO 1260
- 1330 '
- 1340 '.....COLOR CODE
- 1350 R$=""
- 1360 A$=""
- 1370 FOR Z=0 TO 9
- 1380 PRINT " (";Z;") "C$(Z)
- 1390 NEXT Z
- 1400 PRINT L$
- 1410 R=0
- 1420 FOR Z=1 TO 3
- 1430 PRINT " Press number in ( ) for color of ";B$(Z);" ring ";
- 1440 Z$=INKEY$
- 1450 IF Z$=""THEN 1440
- 1460 X=VAL (Z$)
- 1470 IF Z=1 OR Z=2 THEN R=R*10+X
- 1480 IF Z=3 THEN R=R*10^X
- 1490 PRINT TAB(38);C$(X)
- 1500 A$=A$+C$(X)+" "
- 1510 NEXT Z
- 1520 CLS
- 1530 Z=R
- 1540 Z$=" ohms"
- 1550 O$="####,###"
- 1560 IF Z>10^6 THEN Z=Z/10^6:Z$=" megohms":O$="##,###.#"
- 1570 PRINT UL$;
- 1580 PRINT " ";A$
- 1590 PRINT
- 1600 PRINT " Resistance =";
- 1610 COLOR 15,6
- 1620 PRINT USING O$;Z;
- 1630 COLOR 7,0
- 1640 PRINT Z$
- 1650 PRINT UL$;
- 1660 PRINT
- 1670 PRINT " Press number in < > to:
- 1680 PRINT L$
- 1690 PRINT " < 1 > Do another"
- 1700 PRINT " < 0 > Return to menu"
- 1710 PRINT L$
- 1720 Z$=INKEY$
- 1730 IF Z$="1"THEN CLS:GOTO 1340
- 1740 IF Z$="0"THEN 240 'start
- 1750 GOTO 1720
-